Optional ARB-extensions.f

Requires OpenGL\GL-Extensions

Only Forth Definitions
{

TO DO
  2D-relevent extensions
  3D-relevent extensions - which I'm not planning on exploring at the moment.


About glClientActiveTextureARB and glActiveTextureARB:
===================
glClientActiveTextureARB is used when you work with vertex arrays. There's only glTexCoordPointer for texturce coordinates. So if you want to set the texture coordinate pointer for the 3rd texture coordinate you have to use:

glClientActiveTextureARB(GL_TEXTURE2);
glTexCoordPointer(...);

Otherwise if you want to access the texture objects you use glActiveTextureARB. If you want to bind a texture object to texture unit 2 you have to use:

glActiveTextureARB(GL_TEXTURE1);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, my_tex_obj);

glClientActiveTextureARB does NOT affect the the current texture unit for binding texture objects and the other way round glActiveTextureARB does NOT affect the current texture coordinate set for bind texture coordinate pointers.

Note: glTexCoord ALWAYS updates the texture coordinate of the 1 texture unit (GL_TEXTURE0)
===================
}
{ Eskil recommends:
Frame buffer objects
Stencil Depth interleaved
Vertex buffer objects
Float buffer
Stencil two sided
Shading language 100
Cube mapping
Frame buffer blit
Half_float (for texture formats)
S3 Texture compression

Note: some of these require other extensions.
}

GLExtension: texture-compression?     GL_ARB_texture_compression
GLExtension: fragment-program?        GL_ARB_fragment_program
GLExtension: multitexture?            GL_ARB_multitexture
GLExtension: fragment-program-shadow? GL_ARB_fragment_program_shadow
GLExtension: fragment-shader?         GL_ARB_fragment_shader
GLExtension: shader-objects?          GL_ARB_shader_objects
GLExtension: shading-language-100?    GL_ARB_shading_language_100
GLExtension: draw-buffers?            GL_ARB_draw_buffers
GLExtension: point-parameters?        GL_ARB_point_parameters
GLExtension: point-sprite?            GL_ARB_point_sprite
GLExtension: texture-cube-map?        GL_ARB_texture_cube_map
GLExtension: texture-mirrored-repeat? GL_ARB_texture_mirrored_repeat
GLExtension: vertex-blend?            GL_ARB_vertex_blend
GLExtension: vertex-buffer-object?    GL_ARB_vertex_buffer_object
GLExtension: vertex-program?          GL_ARB_vertex_program
GLExtension: vertex-shader?           GL_ARB_vertex_shader
GLExtension: ext-texture-rectangle?   GL_EXT_texture_rectangle
GLExtension: ext-framebuffer-object?  GL_EXT_framebuffer_object

{
GL_EXT_texture_compression_s3tc
GL_ATI_separate_stencil \ for shadows
GL_EXT_blend_color
GL_EXT_blend_func_separate
GL_EXT_blend_minmax
GL_EXT_blend_subtract
GL_EXT_draw_range_elements
GL_EXT_fog_coord
GL_EXT_point_parameters
GL_EXT_rescale_normal
GL_EXT_texture_filter_anisotropic
GL_EXT_texture_object
}
